19.2 Schieberegler mit der Klasse »TrackBar«
 
Schieberegler, die durch die Klasse TrackBar beschrieben werden, sind kaum mehr als eine optische Variante der Klassen HScrollBar und VScrollBar. Aus Sicht des Entwicklers besteht zunächst der wesentliche Unterschied darin, dass die Ausrichtung des Steuerelements durch eine Eigenschaft beschrieben wird: Orientation. Diese kann nur zwei Werte annehmen, Orientation.Horizontal und Orientation.Vertical. Wenn Sie das Steuerelement aus der Toolbox in die Form ziehen, wird ein horizontaler Schieberegler gezeichnet.
Die Eigenschaften
Auffällig ist, dass anscheinend die Breite des Steuerelements nicht verändert werden kann. Ursache hiefür ist die Eigenschaft AutoSize, die auf true voreingestellt ist. Abhilfe schafft die Einstellung AutoSize=false. Zur Einstellung des Schiebereglers dienen wie bei einer Bildlaufleiste die Eigenschaften Value, Maximum, Minimum, SmallChange und LargeChange.
Einen Unterschied sollte man beachten, wenn man die vertikale Bildlaufleiste mit einem vertikal ausgerichteten Schieberegler vergleicht: Bei einer Bildlaufleiste erhöhen sich die Werte, wenn das Bildlauffeld nach unten geführt wird, bei einem TrackBar-Steuerelement ist es genau entgegengesetzt, also von unten nach oben.
Je nachdem, zwischen welchem Anfangs- und Endwert der Schieberegler bewegt werden kann, erhöht oder verringert sich die Anzahl der Teilstriche. Mit zwei Eigenschaften lässt sich die Anzahl der Teilstriche beeinflussen: TickFrequency und TickStyle. Sehen wir uns zunächst die zuerst genannte Eigenschaft an, welche die Anzahl der Teilstriche bestimmt.
| public int TickFrequency {get; set;}
|
Der Wert besagt nicht, wie viele Teilstriche im Steuerelement angezeigt werden, denn die Anzahl ergibt sich aus der Division der Einstellung der Eigenschaft Maximum durch den Wert von TickFrequency. Mit der Standardeinstellung Maximum=10 und TickFrequency=1 ergeben sich daraus zehn Teilstriche. Erhöht man Maximum auf 100, werden 100 Teilstriche angezeigt, wäre das Maximum 50 und unter TickFrequency der Wert 2 eingestellt, könnten wir 25 Teilstriche sehen.
Die Eigenschaft TickStyle legt fest, auf welcher Seite des Schiebereglers die Teilstriche angezeigt werden.
| public TickStyle TickStyle {get; set;}
|
Dabei kann die Eigenschaft die in der folgenden Tabelle aufgeführten Werte annehmen.
Tabelle 19.2 Die Konstanten der Enumeration »TickStyle«
| Member
|
Beschreibung
|
| None
|
Der Schieberegler wird ohne Teilstriche angezeigt.
|
| TopLeft
|
Die Teilstriche sind bei horizontalen Schiebereglern oben, bei vertikalen links.
|
| BottomRight
|
(Standard) Die Teilstriche sind bei horizontalen Schiebereglern unten, bei vertikalen rechts.
|
| Both
|
Teilstriche sind auf beiden Seiten.
|
In Tabelle 19.3 sind noch einmal alle typspezifischen Eigenschaften des TrackBar-Steuerelements zusammengefasst.
Tabelle 19.3 Die Eigenschaften eines »TrackBar«-Objekts
| Eigenschaften
|
Beschreibung
|
| LargeChange
|
Ruft den Wert ab, der zur Value-Eigenschaft addiert oder von dieser subtrahiert werden soll, wenn der Schieberegler um einen größeren Abstand verschoben wird.
|
| Maximum
|
Ruft den Maximalwert ab.
|
| Minimum
|
Ruft den Minimalwert ab.
|
| Orientation
|
Gibt die horizontale oder vertikale Ausrichtung des Schiebereglers an
|
| SmallChange
|
Ruft den Wert ab, der zur Value-Eigenschaft addiert oder von dieser subtrahiert werden soll, wenn der Schieberegler um einen kleinen Abstand verschoben wird.
|
| TickFrequency
|
Legt die Häufigkeit der Teilstriche fest.
|
| TickStyle
|
Legt fest, auf welcher Seite des Schiebereglers die Teilstriche angezeigt werden.
|
| Value
|
Der nummerische Wert, der die aktuelle Position des Schiebereglers darstellt.
|
Die Ereignisse
Die Ereignisse eines Schiebereglers sind dem Namen nach identisch mit denen der Bildlaufleiste: Scroll und ValueChanged. Im Gegensatz zu den Bildlaufleisten sind bei einem TrackBar-Objekt beide Ereignisse vom Typ EventHandler. Beide Ereignisse treten paarweise auf, es sei denn, Value wird programmgesteuert geändert. In diesem Fall kommt es nur zur Auslösung von ValueChanged. Bei einer mausbedingten Ereignisfolge wird Scroll vor ValueChanged ausgelöst.
Der folgende Code erstellt ein Formular mit derselben Funktionalität wie das Beispiel zuvor mit den Schiebereglern. Vergleichen Sie den Programmcode, werden Sie kaum eine Änderung zwischen beiden Programmen feststellen.
 Hier klicken, um das Bild zu vergrößern
Abbildung 19.2 Ausgabe des Beispiels »TrackBarDemo«
| // ---------------------------------------------------------
|
| // Beispiel: ...\Kapitel 19\TrackBarDemo
|
| // ---------------------------------------------------------
|
| public partial class Form1 : Form {
|
| private void SetColor(object sender, EventArgs e) {
|
| pictureBox1.BackColor = Color.FromArgb(trackRed.Value,
|
| trackGreen.Value,
|
| trackBlue.Value);
|
| label1.Text = Convert.ToString(trackRed.Value);
|
| label2.Text = Convert.ToString(trackGreen.Value);
|
| label3.Text = Convert.ToString(trackBlue.Value);
|
| }
|
| }
|
|